/*
 * XOWLGMIEnvironmentApp.java
 */

package xowl.gmi.environment;

import org.jdesktop.application.SingleFrameApplication;

/**
 * The main class of the application.
 */
public class Main extends SingleFrameApplication {
    private static String loglevel;
    
    /**
     * At startup create and show the main frame of the application.
     */
    @Override protected void startup() {
        final MainController main = MainController.create(org.apache.log4j.Level.toLevel(loglevel));
        this.addExitListener(new org.jdesktop.application.Application.ExitListener() {
            @Override public boolean canExit(java.util.EventObject event) {
                return main.canExit();
            }
            @Override public void willExit(java.util.EventObject event) {
                main.onExit();
            }
        });
    }

    /**
     * This method is to initialize the specified window by injecting resources.
     * Windows shown in our application come fully initialized from the GUI
     * builder, so this additional configuration is not needed.
     */
    @Override protected void configureWindow(java.awt.Window root) { }

    /**
     * A convenient static getter for the application instance.
     * @return the instance of XOWLGMIEnvironmentApp
     */
    public static Main getApplication() {
        return Main.getInstance(Main.class);
    }

    /**
     * Main method launching the application.
     */
    public static void main(String[] args) {
        if (args.length == 0)
            loglevel = "INFO";
        if (args.length == 1)
            loglevel = args[0];
        launch(Main.class, args);
    }
}
